1. Statement of the Technical Field
The inventive arrangements relate to timing correction in synchronous data systems, and more particularly to preventing an accumulation of timing errors in such systems.
2. Description of the Related Art
Synchronous data systems transport data from end to end at a fixed rate with no flow control being employed. Once data has started to flow, exactly one bit of data is delivered for each clock transition. Once started, data must flow though all stages in the system without “running dry” or overrunning. Any system that handles synchronous data with arbitrarily long messages needs to address at least receive clock correction. Many other systems may have to provide transmit clock correction as well. Although implementation details differ somewhat, similar techniques are used to address both.
One technique for clock correction is sometimes referred to as the feed-forward technique. Systems utilizing this technique typically feed clock correction information forward from an upstream stage to downstream stages of the system. The downstream stage uses the clock correction information to make clock adjustments to a downstream clock. The feed-forward approach is conceptually simple. In practice, however, it takes considerable care to realize a working, reliable system in this way. Several factors must be considered in crafting a good implementation. For example, in synchronous systems using this technique, there is generally no feedback process to “undo” errors. Consequently, the feed-forward adjustments must be applied without any rounding or other errors that could accumulate over time. This is often challenging because the downstream clock period may not be an exact multiple or sub-multiple of the upstream clock correction value.
Still, the feed-forward approach shows promise for use in connection with synchronous communication systems implemented in software based radios. For the purposes of clock correction, the feed-forward technique merely needs to communicate time differences or deltas compared to a shared time reference. If such time differences can be communicated in some standardized units (e.g., microseconds), then waveform and platform portability can be achieved. Realizing these goals, however requires both proper platform design and proper attention to the software APIs concerned with clock correction.
Although a common clock can be shared between upstream and downstream processes (which are often executing on different processors), the “units” of correction typically must be customized for each process. For a given process, this correction “quantum” can be related to the common clock by some rational number N/M, where this fraction could be greater than, or less than 1. In this regard, the time correction values can be expressed in terms of a “natural quanta” that is well suited to the particular platform and waveform. Still, in certain types of systems, a standard, non-platform specific quantum of time is needed to communicate the correction requests from one platform to another. For example, in software-defined radios the waveform is architecturally separated from the platform. As a result, it can be desirable to utilize a standardized unit of time (e.g. a multiple of 1 microsecond) for communicating clock correction information between the various waveform and platform components employed in realizing a communications system. Such a standardized communication format is important for maintaining waveform portability. Significantly, however, if there are any rounding or truncation errors when translating between the process “natural quanta” and the standardized units, they can result in serious error accumulation problems. Accordingly, if such a standardized communication format is to be used, the conversion of clock correction information to the standardized rate must occur (at least on average) without any rounding or truncation errors.